package request_head

type HeadParam struct {
	Url       string `json:"url"`
	UserId    uint64 `json:"user_id"`
	RequestId string `json:"requestid"`
	Did       string `protobuf:"bytes,1,opt,name=did,proto3" json:"did,omitempty"`             // 设备ID
	Os        string `protobuf:"bytes,2,opt,name=os,proto3" json:"os,omitempty"`               // os
	Version   string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`     // 版本号
	Language  string `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"`   // 客户端语言
	Model     string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"`         // 设备
	Ip        string `protobuf:"bytes,6,opt,name=ip,proto3" json:"ip,omitempty"`               // 客户端ip
	Channel   string `protobuf:"bytes,7,opt,name=channel,proto3" json:"channel,omitempty"`     // channel
	Mac       string `protobuf:"bytes,8,opt,name=mac,proto3" json:"mac,omitempty"`             // mac地址
	UserAgent string `protobuf:"bytes,9,opt,name=userAgent,proto3" json:"userAgent,omitempty"` // user_agent
	Token     string `json:"token"`                                                            // token

	Idfa       string `json:"idfa"`       // idfa
	AfId       string `json:"afid"`       // appsflyer-id
	Locale     string `json:"locale"`     // locale
	Timezone   string `json:"timezone"`   // timezone
	Mcc        string `json:"mcc"`        // mcc
	KeyChainId string `json:"keychainid"` // keyChainID
	Screen     string `json:"screen"`     // screen
	Pkg        string `json:"pkg"`        // pkg
	Ticket     string `json:"ticket"`     // ticket
}

type AuthSpecial interface {
	Auth(hp *HeadParam) (uint64, error)
}
